home *** CD-ROM | disk | FTP | other *** search
/ Netware Super Library / Netware Super Library.iso / diagnstc / _winfile / nr6000 / netrpt / disk1 / setup.mst < prev    next >
Text File  |  1995-01-10  |  11KB  |  476 lines

  1. '**************************************************************************
  2. '                 HawkNet Inc. NetTune PRO Setup
  3. '**************************************************************************
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME     = 100
  10. CONST ASKQUIT     = 200
  11. CONST DESTPATH    = 300
  12. CONST EXITFAILURE = 400
  13. CONST EXITQUIT    = 600
  14. CONST EXITSUCCESS = 700
  15. CONST APPHELP     = 900
  16. CONST RESTART     = 1000
  17. CONST CUSTINST    = 6200
  18. CONST TOOBIG      = 6300
  19. CONST BADPATH     = 6400
  20.  
  21. '' window sizing
  22. CONST WS_VISIBLE       = &H10000000
  23. CONST WS_CAPTION       = &H00C00000 
  24. CONST WS_CLIPCHILDREN  = &H02000000
  25. CONST WS_SYSMENU       = &H00080000
  26. CONST WS_MINIMIZEBOX   = &H00020000
  27. CONST WS_MAXIMIZEBOX   = &H00010000
  28. CONST WS_THICKFRAME    = &H00040000
  29. CONST GWL_STYLE        = -16
  30. CONST SW_SHOWMAXIMIZED = 3
  31.  
  32. '' File TYPES
  33. CONST OPTFILES1 = 1
  34. CONST OPTFILES2 = 2
  35.  
  36. ''Bitmap ID
  37. CONST INSTALL = 1
  38. '' HawkNet Bitmap
  39. CONST HNLOGO = 2
  40.  
  41. '' File set symbol names
  42. GLOBAL OPT1NEEDS$ 
  43. GLOBAL OPT2NEEDS$ 
  44. GLOBAL EXTRACOSTS$  
  45. GLOBAL BIGLIST$     
  46.  
  47. GLOBAL DRIVETEXT$
  48. GLOBAL NTDEST$      
  49. GLOBAL WINDRIVE$    
  50. GLOBAL GROUP$        
  51. GLOBAL ITEM$        
  52. GLOBAL ITME2$
  53. GLOBAL ITEM3$
  54. GLOBAL ITEM4$
  55. GLOBAL EXE$            
  56. GLOBAL EXE2$            
  57. GLOBAL EXE3$            
  58. GLOBAL EXE4$            
  59. GLOBAL SRCDIR$ 
  60. GLOBAL WINDIR$ 
  61. GLOBAL SETUPDIR$
  62.  
  63. DECLARE SUB AddOptFilesToCopyList (ftype%)
  64. DECLARE SUB RecalcOptFiles (ftype%)
  65. DECLARE SUB RecalcPath
  66. DECLARE SUB SetDriveStatus
  67. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  68. DECLARE FUNCTION ShowWindow LIB  "user.exe" (hWnd%, iShow%) AS INTEGER
  69. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  70.  
  71.  
  72. INIT:
  73.  
  74.     CUIDLL$   = "mscuistf.dll"          ''Custom user interface dll
  75.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  76.  
  77.  
  78.     ''
  79.     '' Initialize window
  80.     ''
  81.  
  82.     hWnd% = HwndFrame()
  83.     k&    = SetWindowLong(hWnd%, GWL_STYLE, WS_CAPTION+WS_VISIBLE+WS_CLIPCHILDREN+WS_SYSMENU+WS_MINIMIZEBOX+WS_MAXIMIZEBOX+WS_THICKFRAME)
  84.     j%    = ShowWindow(hWnd%, SW_SHOWMAXIMIZED)                                            
  85.                                                                                            
  86.  
  87.     ''
  88.     '' Check Windows Version Number
  89.     ''
  90.  
  91.     MajorVer% = GetWindowsMajorVersion()
  92.     MinorVer% = GetWindowsMinorVersion()
  93.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  94.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  95.         END
  96.     END IF
  97.  
  98.     ''
  99.     '' Setup globals
  100.     ''
  101.                                                                                
  102.     SetBitmap CUIDLL$, INSTALL
  103.     SetTitle "HawkNet, Inc."
  104.  
  105.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  106.     IF szInf$ = "" THEN
  107.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  108.     END IF
  109.  
  110.     ReadInfFile szInf$
  111.  
  112.     SRCDIR$    = GetSymbolValue("STF_SRCDIR")
  113.  
  114.     WINDIR$    = GetWindowsDir()
  115.  
  116.     WINDRIVE$  = MID$(WINDIR$, 1, 1)
  117.  
  118.     NTDEST$    = WINDRIVE$ + ":\NETRPT"
  119.  
  120.     EXE$       = "NETRPT.EXE"
  121.     EXE2$      = "NETRPT.WRI"
  122.     EXE3$      = "NETRPT.HLP"
  123.  
  124.     GROUP$     = "HawkNet"
  125.  
  126.     ITEM$      = "NetReport"
  127.     ITEM2$     = "NetReport ReadMe"
  128.     ITEM3$     = "NetReport Help"
  129.  
  130.  
  131.     SETUPDIR$  = WINDRIVE$ + ":\~hawknet.t"
  132.  
  133.     '' list symbols
  134.     DRIVETEXT$   = "DriveStatusText"
  135.  
  136.     FOR i% = 1 TO 3 STEP 1
  137.         AddListItem DRIVETEXT$, ""
  138.     NEXT i%
  139.  
  140.     ReplaceListItem DRIVETEXT$, 3, NTDEST$
  141.  
  142.     ''Disk cost list symbols
  143.     OPT1NEEDS$     = "OptNeeds1"
  144.     OPT2NEEDS$     = "OptNeeds2"
  145.     EXTRACOSTS$ = "ExtraCosts"
  146.     BIGLIST$    = "BigList"
  147.  
  148.     FOR i% = 1 TO 2 STEP 1
  149.         AddListItem BIGLIST$, ""
  150.     NEXT i%
  151.     FOR i% = 1 TO 26 STEP 1
  152.         AddListItem EXTRACOSTS$, "0"
  153.     NEXT i%
  154.  
  155.     SetRestartDir SETUPDIR$
  156.  
  157. ''    RecalcPath
  158.  
  159. ''    SetDriveStatus
  160.  
  161. WELCOME:
  162.  
  163.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  164.     IF sz$ = "CONTINUE" THEN
  165.         UIPop 1
  166.     ELSE
  167.         GOSUB ASKQUIT
  168.         GOTO WELCOME
  169.     END IF
  170.  
  171.     RecalcPath
  172.  
  173.     SetDriveStatus
  174.  
  175.  
  176.  
  177. CUSTINST:
  178.  
  179.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  180.  
  181.     IF sz$ = "CONTINUE" THEN
  182.         ''Install only if it will fit.
  183.         FOR i% = 1 TO 2 STEP 1
  184.             IF GetListItem(BIGLIST$, i%) <> "" THEN
  185.                 GOSUB TOOBIG
  186.                 GOTO CUSTINST
  187.             END IF
  188.         NEXT i%
  189.         UIPop 1
  190.         GOTO INSTALL    
  191.         
  192.     ELSEIF sz$ = "PATH" THEN        
  193.         GOTO GETPATH        
  194.  
  195.     ELSEIF sz$ = "REACTIVATE" THEN        
  196.         RecalcPath
  197.         SetDriveStatus
  198.         GOTO CUSTINST
  199.     ELSE
  200.         GOSUB ASKQUIT
  201.         GOTO CUSTINST        
  202.     END IF        
  203.         
  204. INSTALL:
  205.  
  206.     ClearCopyList
  207.  
  208.     AddOptFilesToCopyList OPTFILES1
  209.     AddOptFilesToCopyList OPTFILES2
  210.  
  211.     CreateDir NTDEST$, cmoNone
  212.  
  213.     CopyFilesInCopyList
  214.  
  215.     CreateProgmanGroup GROUP$, "", cmoNone
  216.  
  217.     CreateProgmanItem GROUP$, ITEM$,  MakePath(NTDEST$, EXE$),","+","+","+MakePath(NTDEST$,""), cmoOverwrite
  218.     CreateProgmanItem GROUP$, ITEM2$, "WRITE.EXE " + MakePath(NTDEST$, EXE2$), "", cmoOverwrite
  219.     CreateProgmanItem GROUP$, ITEM3$, "WINHELP.EXE " + MakePath(NTDEST$,EXE3$),"", cmoOverwrite
  220.  
  221.  
  222.     CreateIniKeyValue "WIN.INI", GROUP$, "NetReportHome", NTDEST$,  cmoOverwrite
  223.  
  224. QUIT:
  225.  
  226.     ON ERROR GOTO ERRQUIT
  227.  
  228.     IF ERR = 0 THEN
  229.        dlg% = EXITSUCCESS
  230.     ELSEIF ERR = STFQUIT THEN
  231.         dlg% = EXITQUIT
  232.     ELSE
  233.         dlg% = EXITFAILURE
  234.     END IF
  235.  
  236. QUITL1:
  237.  
  238.     '' HawkNet Bitmap
  239.     ''SetBitmap CUIDLL$, HNLOGO
  240.  
  241.     n% = RestartListEmpty()
  242.  
  243.     IF n% = 1 THEN
  244.         
  245.         sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  246.  
  247.         IF sz$ = "REACTIVATE" THEN
  248.             GOTO QUITL1
  249. ''        ELSEIF sz$ = "BACK" THEN
  250. ''            chdir NTDEST$    
  251. ''            Run MakePath(NTDEST$, EXE$), NOWAIT 
  252.         END IF
  253.  
  254.     ELSE
  255.  
  256.         dlg% = RESTART
  257.  
  258.         sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  259.  
  260.         n% = ExitExecRestart()
  261.  
  262.     END IF
  263.  
  264.     UIPop 1
  265.  
  266.     END
  267.  
  268. ERRQUIT:
  269.  
  270.     i% = DoMsgBox("Setup sources were corrupted, call (619) 929-9966!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  271.     END
  272.  
  273. ''
  274. '' ASKQUIT
  275. ''
  276. ASKQUIT:
  277.  
  278.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  279.  
  280.     IF sz$ = "EXIT" THEN
  281.         UIPopAll
  282. ''        ERROR STFQUIT
  283.         END
  284.     ELSEIF sz$ = "REACTIVATE" THEN
  285.         GOTO ASKQUIT
  286.     ELSE
  287.         UIPop 1
  288.     END IF
  289.     RETURN
  290.  
  291. ''
  292. '' TOOBIG
  293. ''
  294. TOOBIG:
  295.  
  296.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  297.     IF sz$ = "REACTIVATE" THEN
  298.         GOTO TOOBIG
  299.     END IF
  300.     UIPop 1
  301.     RETURN
  302.  
  303.  
  304. BADPATH:
  305.  
  306.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  307.     IF sz$ = "REACTIVATE" THEN
  308.         GOTO BADPATH
  309.     END IF
  310.     UIPop 1
  311.     RETURN
  312.  
  313. ''
  314. '' GETPATH
  315. ''
  316. '' Get destination path
  317. ''
  318. GETPATH:
  319.  
  320.     SetSymbolValue "EditTextIn", NTDEST$
  321.     SetSymbolValue "EditFocus", "END"
  322.  
  323. GETPATHL1:
  324.  
  325.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  326.  
  327.     IF sz$ = "CONTINUE" THEN
  328.         olddest$ = NTDEST$
  329.         NTDEST$ = GetSymbolValue("EditTextOut")
  330.  
  331.         ''Validate new path.
  332.         IF IsDirWritable(NTDEST$) = 0 THEN
  333.             GOSUB BADPATH
  334.             GOTO GETPATHL1
  335.         END IF
  336.         UIPop 1
  337.  
  338.         ''Truncate display if too long.
  339.         IF LEN(NTDEST$) > 23 THEN
  340.             ReplaceListItem DRIVETEXT$, 3, MID$(NTDEST$, 1, 23)+"..."
  341.         ELSE
  342.             ReplaceListItem DRIVETEXT$, 3, NTDEST$
  343.         END IF
  344.  
  345.         ''Recalc if path changed.
  346.         IF (olddest$ <> NTDEST$) AND (olddest$ <> NTDEST$+"\") AND (olddest$+"\" <> NTDEST$) THEN
  347.             RecalcPath
  348.             SetDriveStatus
  349.         END IF
  350.  
  351.         olddest$ = ""
  352.         GOTO CUSTINST
  353.     ELSEIF sz$ = "REACTIVATE" THEN
  354.         RecalcPath
  355.         SetDriveStatus
  356.         GOTO GETPATHL1
  357.     ELSEIF sz$ = "EXIT" THEN
  358.         GOSUB ASKQUIT
  359.         GOTO GETPATHL1
  360.     ELSE
  361.         UIPop 1
  362.         GOTO CUSTINST
  363.     END IF
  364.  
  365. ''
  366. '' MakePath
  367. ''
  368. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  369.  
  370.     IF szDir$ = "" THEN
  371.         MakePath = szFile$
  372.     ELSEIF szFile$ = "" THEN
  373.         MakePath = szDir$
  374.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  375.         MakePath = szDir$ + szFile$
  376.     ELSE
  377.         MakePath = szDir$ + "\" + szFile$
  378.     END IF
  379.  
  380. END FUNCTION
  381.  
  382. ''
  383. '' AddOptFilesToCopyList
  384. ''
  385. SUB AddOptFilesToCopyList (ftype%) STATIC
  386.  
  387.     IF ftype% = OPTFILES1 THEN
  388.         AddSectionFilesToCopyList "NTEXE",   SRCDIR$, NTDEST$
  389.     ELSEIF ftype% = OPTFILES2 THEN
  390.         AddSectionFilesToCopyList "NWDLLS",   SRCDIR$, WINDIR$
  391.     END IF
  392.  
  393. END SUB
  394.  
  395.  
  396. ''
  397. '' RecalcOptFiles
  398. ''
  399. SUB RecalcOptFiles (ftype%) STATIC
  400.  
  401.     CursorSave% = ShowWaitCursor()
  402.  
  403.     ClearCopyList
  404.  
  405.     AddOptFilesToCopyList ftype%
  406.  
  407.     fExtra% = 0
  408.  
  409.     IF ftype% = OPTFILES1 THEN
  410.         ListSym$ = OPT1NEEDS$
  411.     ELSEIF ftype% = OPTFILES2 THEN
  412.         ListSym$ = OPT2NEEDS$
  413.     END IF
  414.  
  415.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  416.   
  417.     cost& = 0
  418.  
  419.     FOR i% = 1 TO 26 STEP 1
  420.         cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  421.     NEXT i%
  422.  
  423.     IF StillNeed& > 0 THEN
  424.         ReplaceListItem BIGLIST$, ftype%, "YES"
  425.     ELSE
  426.         ReplaceListItem BIGLIST$, ftype%, ""
  427.     END IF
  428.  
  429.     IF fExtra% THEN
  430.         ReplaceListItem EXTRACOSTS$, ndrive%, "0"
  431.     END IF
  432.  
  433.     RestoreCursor CursorSave%
  434.  
  435.     ListSym$ = ""
  436.  
  437. END SUB
  438.  
  439.  
  440. ''
  441. '' RecalcPath
  442. ''
  443. '' Calculate the amount of disk space need for the installation
  444. ''
  445. SUB RecalcPath STATIC
  446.  
  447.     CursorSave% = ShowWaitCursor()
  448.  
  449.     RecalcOptFiles OPTFILES1
  450.     RecalcOptFiles OPTFILES2
  451.  
  452.     RestoreCursor CursorSave%
  453.  
  454. END SUB
  455.  
  456. ''
  457. '' SetDriveStatus
  458. ''
  459. '' Determine the amount of available space and the amount needed for
  460. '' this installation.
  461. ''
  462. SUB SetDriveStatus STATIC
  463.  
  464.     drive$   = MID$(NTDEST$, 1, 1)
  465.     ndrive%  = ASC(ucase$(drive$)) - ASC("A") + 1
  466.  
  467.     cost& = VAL(GetListItem(OPT1NEEDS$,ndrive%))+VAL(GetListItem(OPT2NEEDS$,ndrive%))
  468.  
  469.     free& = GetFreeSpaceForDrive(drive$)
  470.  
  471.     ReplaceListItem DRIVETEXT$, 1, STR$(cost& / 1024) + " K"
  472.     ReplaceListItem DRIVETEXT$, 2, STR$(free& / 1024) + " K"
  473.     ReplaceListItem DRIVETEXT$, 3, NTDEST$
  474. END SUB
  475.  
  476.